﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using LPrisaMVC.Entities;
using LPrisaMVC.WebMVC4;
using LPrisaMVC.DAO;


namespace LPrisaMVC.WebMVC4.Tests.Controllers
{
    [TestClass]
    public class ClienteControllerTest
    {
        [TestMethod]
        public void GetAllFromCliente()
        {
            ClienteDAO cliDAO = new ClienteDAO();
            List<CLIENTE> actual;
            actual = cliDAO.GetAllFromCliente();
            Assert.IsTrue(actual.Count > 1);
        }

        [TestMethod]
        public void GetFromClienteById()
        {
            ClienteDAO cliDAO = new ClienteDAO();
            int id = 109;
            CLIENTE actual;
            actual = cliDAO.GetFromClienteById(id);
            Assert.IsTrue(actual.Id == 109);
        }

        [TestMethod]
        public void GetAllFromClienteByDniRuc()
        {
            ClienteDAO cliDAO = new ClienteDAO();
            var DniRuc = "10471682735";
            CLIENTE actual;
            actual = cliDAO.GetFromOneClienteByDniRuc(DniRuc);
            Assert.IsTrue(actual.DniRuc == DniRuc);
            //Assert.IsNotNull(actual);
        }

        [TestMethod]
        public void AddCliente()
        {
            ClienteDAO cliDAO = new ClienteDAO();
            var ListEsperado = (List<CLIENTE>)cliDAO.GetAllFromCliente();
            CLIENTE cliente = new CLIENTE()
            {
                NombreRazonSocial = "DANY",
                DniRuc = "47168273",
                Direccion = "CAXAS - PERU",
                Telefono = "966739761",
                Email = "dany.vh@outlook.com",
            };
            cliDAO.AddCliente(cliente);
            var ListaCTUAL = (List<CLIENTE>)cliDAO.GetAllFromCliente();
            Assert.AreEqual(ListEsperado.Count + 1, ListaCTUAL.Count, "Error ");
        }

        [TestMethod]
        public void UpdateCliente()
        {
            ClienteDAO cliDAO = new ClienteDAO();
            var ID = 110;
            var NombreRazonSocial = "DANY";
            
            CLIENTE cliente = new CLIENTE()
            {
                NombreRazonSocial = NombreRazonSocial,
                DniRuc = "47168273",
                Direccion = "CAXAS - caxas",
                Telefono = "966478963",
                Email = "dany.vh@outlook.com",
            };
            cliDAO.UpdateCliente(cliente);
            var existe = cliDAO.GetFromClienteById(ID);
            Assert.IsTrue(existe.NombreRazonSocial == NombreRazonSocial);
        }

        [TestMethod]
        public void RemoveCliente()
        {
            ClienteDAO cliDAO = new ClienteDAO();
            var id = 114;
            cliDAO.DeleteCliente(id);
            var existe = cliDAO.GetFromClienteById(id);
            Assert.IsTrue(existe == null);

        }
    }
}
